
<#
    https://blog.csdn.net/u010006309/article/details/52780231  【在PowerShell中使用curl(Invoke-WebRequest)】
    https://www.thecodebuzz.com/making-powershell-post-request-with-body-json-array/  【Making a PowerShell POST request with body – Guidelines】
#>

#####################################################################################
############################################################## POST
#####################################################################################
#  // 请求Apache Camel某个Route的配置项, 经过测试已经成功！！！
Invoke-WebRequest -Method POST http://localhost:8080/actuator/camelroutes/foldSync-KunMing-RouteId -Headers @{"Content-type"="application/json"} | Select-Object -ExpandProperty Content

Invoke-WebRequest -Method POST http://localhost:8080/foo/hello -Headers @{"Content-type"="application/json"} | Select -ExpandProperty Content

Invoke-WebRequest -uri ftp://172.16.3.3/bdcdj6/X/default.htm  -OutFile D:/1.html

# // 带参数, 验证通过
Invoke-WebRequest -Uri http://erp.kqgeo.com:809/kqcoerp_kqnewVer_ElinkMgt_pushKimMessageWH.action -Method Post -Body @{receiver='luoqi';msgTitle='${MSG_TITLE}';msgContent='${MSG_CONTENT}'} -ContentType "application/x-www-form-urlencoded"

# // 使用array类型的参数;;; 关键是： -Body ($body|ConvertTo-Json)
$headers = @{
 'Content-Type'='application/json'
 'apikey'='7bd43dc4216e15971'
 }
$body = @{
    'siteUrl' = "https://www.thecodebuzz.com"
    'urlList'= @(
        "Item1",
        "Item2",
        "Item3")     
}
Invoke-RestMethod -Method 'Post' -Uri $url -Body ($body|ConvertTo-Json) -Headers $headers -ContentType "application/json"

###########Copy From : https://github.com/portainer/portainer/blob/develop/build/download_docker_binary.ps1
param (
  [string]$docker_version
)

$ErrorActionPreference = "Stop";

New-Item -Path "docker-binary" -ItemType Directory | Out-Null

$download_folder = "docker-binary"

Invoke-WebRequest -O "$($download_folder)/docker-binaries.zip" "https://download.docker.com/win/static/stable/x86_64/docker-$($docker_version).zip"
Expand-Archive -Path "$($download_folder)/docker-binaries.zip" -DestinationPath "$($download_folder)"
Move-Item -Path "$($download_folder)/docker/docker.exe" -Destination "dist"

#####################################################################################
############################################################## GET
#####################################################################################
#// GET请求 获取返回值
Invoke-WebRequest -uri 'https://www.baidu.com' | Select -ExpandProperty Content

#// 获取完整的content
-Headers @{"accept"="application/json"}

#// 指定Method
-Method Get

#// 将获取到的content输出到文件
-OutFile 'c:\Users\rmiao\temp\content.txt'
    
#// ============== 其他的看以上链接



#####################################################################################
############################################################## 表单提交
#####################################################################################
#// 表单提交
$formFields = @{username='john doe';age=18}
Invoke-WebRequest -Uri http://localhost:8080/foo/hello -Method Post -Body $formFields -ContentType "application/x-www-form-urlencoded"
Invoke-WebRequest -Uri http://localhost:8080/camel/hello -Method Post -Body $formFields -ContentType "application/x-www-form-urlencoded"

#//or
Invoke-RestMethod http://website.com/service.aspx -Body $R.Forms[0]